Various aspects of the present invention relate in general, to registry and repository systems and methods, and in particular, to service registry and repository systems and methods based on a triplestore database for operating a policy aggregator.
Service oriented architecture (SOA) is a business-driven, information technology (IT) architectural approach that supports integrating business domains as linked, repeatable business tasks, or services. The basic building block is a service document that defines an associated service so that the service can be managed with other services. A service document contains information about an associated service, including the location of the service, details about the service and how to access the service. Service documents are used by analysts, architects, and developers during a Development Phase of the SOA life cycle to locate services to reuse and to evaluate the impact of changes to service configurations. Service documents are variously described as metadata, objects, descriptions, entities and artifacts.
A service repository stores the service document and allows access to the service document and thereby the corresponding service. A service registry is an index of a subset of information about a service (for example the location and name of service document) enabling the corresponding service document to be located and accessed in a repository (or even the corresponding service located at the service provider). An integrated service registry and repository allows a service operation to use both the indexed service information in the registry and the detailed service information in the repository. An example of an integrated service registry and repository is the IBM® WebSphere® Registry and Repository (WSRR).
Such an integrated service registry and repository has advantages of greater business agility and resilience through reuse compared to separate service registry and repository systems. Further advantages of looser coupling, greater flexibility, better interoperability, and better governance also arise from the integration of a service registry and a repository. These advantages are addressed by separating service descriptions from their implementations, and using the service descriptions across the life cycle of the service. Standards-based service metadata artifacts, such as Web Service Definition Language (WSDL), extensible mark-up language (XML) schema, policy or Service Component Architecture (SCA) documents, capture the technical details of what a service can do, how it can be invoked, or what it expects other services to do. Semantic annotations and other metadata can be associated with these artifacts to offer insight to potential users of the service on how and when it can be used, and what purposes it serves.
WS-Policy is a World Wide Web Consortium (W3C) standard that is intended to provide a means for specifying policies that need to be applied to Web Services and specifically, service documents. The WS-Policy-Attach specification, also controlled by the W3C, specifies a standardized means by which policy attachments can be defined to link a policy to a service object referenced in a service document. Service objects or logical objects are derived from documents such as Web Service Definition Language (WSDL) documents, Extensible Markup Language (XML) documents, XML schema definition (XSD) documents, Web Service Policy (WS-Policy) documents etc., when they are loaded into the Service Registry environment. The WS-Policy-Attach specification declares different means of associating policies with target elements in WSDL documents: 1) an element in a WSDL document having an embedded policy; 2) an element in a WSDL document having an embedded policy reference referencing an external policy in a policy attachment file; 3) an embedded policy in external policy attachment file having a reference to an element in a WSDL document; 4) and embedded policy reference in an external policy attachment file referencing an element in a WSDL document and a policy in another external policy attachment file.
A policy is a rule that is applied to an object by an environment. For instance, access to an object can be controlled by applying a rule that only entities with a certain token can have access to the object. Since there is more than one way of specifying polices, there is no way of being able to retrieve a WSDL service definition file that encapsulates all of the policies that may have been linked directly or indirectly, to or from the logical object referenced in the service document.